package com.settlement.system.model.entity.common;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import com.alibaba.excel.annotation.write.style.HeadStyle;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
 * 优购网-微信账单明细
 * @author Ximi
 * @since 2020-07-09
 */
@Data
@ExcelIgnoreUnannotated
@HeadStyle(fillBackgroundColor = 9,fillForegroundColor = 9)
@HeadRowHeight(value = 20)
@HeadFontStyle(fontHeightInPoints = 14)
public class TblYgWechatBillDetail extends BaseModel implements Serializable {


    /**
     * 店铺编码
     */
    @ExcelProperty(value = "店铺编码")
    @ApiModelProperty(value = "店铺编码")
    private String shopNo;

    /**
     * 店铺名称
     */
    @ExcelProperty(value = "店铺名称")
    @ApiModelProperty(value = "店铺名称")
    private String shopName;

    /**
     * 交易时间
     */
    @ExcelProperty(value = "交易时间")
    @ApiModelProperty(value = "交易时间")
    @JsonFormat(pattern="yyyy/MM/dd HH:mm:ss",timezone = "GMT+8")
    private Date exchangeDate;

    /**
     * 公众账号ID
     */
    @ExcelProperty(value = "公众账号ID")
    @ApiModelProperty(value = "公众账号ID")
    private String publicAccountId;

    /**
     * 商户号
     */
    @ExcelProperty(value = "商户号")
    @ApiModelProperty(value = "商户号")
    private String merchantAccount;

    /**
     * 特约商户号
     */
    @ExcelProperty(value = "特约商户号")
    @ApiModelProperty(value = "特约商户号")
    private String specialMerchantAccount;

    /**
     * 设备号
     */
    @ExcelProperty(value = "设备号")
    @ApiModelProperty(value = "设备号")
    private String deviceNo;

    /**
     * 微信订单号
     */
    @ExcelProperty(value = "微信订单号")
    @ApiModelProperty(value = "微信订单号")
    private String wcOrderNo;

    /**
     * 商户订单号
     */
    @ExcelProperty(value = "商户订单号")
    @ApiModelProperty(value = "商户订单号")
    private String merchantOrderNo;

    /**
     * 用户标识
     */
    @ExcelProperty(value = "用户标识")
    @ApiModelProperty(value = "用户标识")
    private String userMark;

    /**
     * 交易类型
     */
    @ExcelProperty(value = "交易类型")
    @ApiModelProperty(value = "交易类型")
    private String exchangeType;

    /**
     * 交易状态
     */
    @ExcelProperty(value = "交易状态")
    @ApiModelProperty(value = "交易状态")
    private String exchangeStatus;

    /**
     * 付款银行
     */
    @ExcelProperty(value = "付款银行")
    @ApiModelProperty(value = "付款银行")
    private String paymentBank;

    /**
     * 货币种类
     */
    @ExcelProperty(value = "货币种类")
    @ApiModelProperty(value = "货币种类")
    private String coinType;

    /**
     * 应结订单金额
     */
    @ExcelProperty(value = "应结订单金额")
    @ApiModelProperty(value = "应结订单金额")
    private BigDecimal settleOrderAmount;

    /**
     * 代金券金额
     */
    @ExcelProperty(value = "代金券金额")
    @ApiModelProperty(value = "代金券金额")
    private BigDecimal cashCouponAmont;

    /**
     * 微信退款单号
     */
    @ExcelProperty(value = "微信退款单号")
    @ApiModelProperty(value = "微信退款单号")
    private String wcRefundNo;

    /**
     * 商户退款单号
     */
    @ExcelProperty(value = "商户退款单号")
    @ApiModelProperty(value = "商户退款单号")
    private String merchantRefundNo;

    /**
     * 退款金额
     */
    @ExcelProperty(value = "退款金额")
    @ApiModelProperty(value = "退款金额")
    private BigDecimal refundAmount;

    /**
     * 充值券退款金额
     */
    @ExcelProperty(value = "充值券退款金额")
    @ApiModelProperty(value = "充值券退款金额")
    private BigDecimal rechargeCouponRefundAmount;

    /**
     * 退款类型
     */
    @ExcelProperty(value = "退款类型")
    @ApiModelProperty(value = "退款类型")
    private String refundType;

    /**
     * 退款状态
     */
    @ExcelProperty(value = "退款状态")
    @ApiModelProperty(value = "退款状态")
    private String refundStatus;

    /**
     * 商品名称
     */
    @ExcelProperty(value = "商品名称")
    @ApiModelProperty(value = "商品名称")
    private String itemName;

    /**
     * 商户数据包
     */
    @ExcelProperty(value = "商户数据包")
    @ApiModelProperty(value = "商户数据包")
    private String merchantDataPackage;

    /**
     * 手续费
     */
    @ExcelProperty(value = "手续费")
    @ApiModelProperty(value = "手续费")
    private BigDecimal serviceCharge;

    /**
     * 费率
     */
    @ExcelProperty(value = "费率")
    @ApiModelProperty(value = "费率")
    private BigDecimal taxRate;

    /**
     * 订单金额
     */
    @ExcelProperty(value = "订单金额")
    @ApiModelProperty(value = "订单金额")
    private BigDecimal orderAmount;

    /**
     * 申请退款金额
     */
    @ExcelProperty(value = "申请退款金额")
    @ApiModelProperty(value = "申请退款金额")
    private BigDecimal applyRefundAmount;

    /**
     * 费率备注
     */
    @ExcelProperty(value = "费率备注")
    @ApiModelProperty(value = "费率备注")
    private String taxRateRemark;


    public String getShopNo() {
        return shopNo;
    }

    public void setShopNo(String shopNo) {
        this.shopNo = shopNo;
    }

    public String getShopName() {
        return shopName;
    }

    public void setShopName(String shopName) {
        this.shopName = shopName;
    }

    public Date getExchangeDate() {
        return exchangeDate;
    }

    public void setExchangeDate(Date exchangeDate) {
        this.exchangeDate = exchangeDate;
    }

    public String getPublicAccountId() {
        return publicAccountId;
    }

    public void setPublicAccountId(String publicAccountId) {
        this.publicAccountId = publicAccountId;
    }

    public String getMerchantAccount() {
        return merchantAccount;
    }

    public void setMerchantAccount(String merchantAccount) {
        this.merchantAccount = merchantAccount;
    }

    public String getSpecialMerchantAccount() {
        return specialMerchantAccount;
    }

    public void setSpecialMerchantAccount(String specialMerchantAccount) {
        this.specialMerchantAccount = specialMerchantAccount;
    }

    public String getDeviceNo() {
        return deviceNo;
    }

    public void setDeviceNo(String deviceNo) {
        this.deviceNo = deviceNo;
    }

    public String getWcOrderNo() {
        return wcOrderNo;
    }

    public void setWcOrderNo(String wcOrderNo) {
        this.wcOrderNo = wcOrderNo;
    }

    public String getMerchantOrderNo() {
        return merchantOrderNo;
    }

    public void setMerchantOrderNo(String merchantOrderNo) {
        this.merchantOrderNo = merchantOrderNo;
    }

    public String getUserMark() {
        return userMark;
    }

    public void setUserMark(String userMark) {
        this.userMark = userMark;
    }

    public String getExchangeType() {
        return exchangeType;
    }

    public void setExchangeType(String exchangeType) {
        this.exchangeType = exchangeType;
    }

    public String getExchangeStatus() {
        return exchangeStatus;
    }

    public void setExchangeStatus(String exchangeStatus) {
        this.exchangeStatus = exchangeStatus;
    }

    public String getPaymentBank() {
        return paymentBank;
    }

    public void setPaymentBank(String paymentBank) {
        this.paymentBank = paymentBank;
    }

    public String getCoinType() {
        return coinType;
    }

    public void setCoinType(String coinType) {
        this.coinType = coinType;
    }

    public BigDecimal getSettleOrderAmount() {
        return settleOrderAmount;
    }

    public void setSettleOrderAmount(BigDecimal settleOrderAmount) {
        this.settleOrderAmount = settleOrderAmount;
    }

    public BigDecimal getCashCouponAmont() {
        return cashCouponAmont;
    }

    public void setCashCouponAmont(BigDecimal cashCouponAmont) {
        this.cashCouponAmont = cashCouponAmont;
    }

    public String getWcRefundNo() {
        return wcRefundNo;
    }

    public void setWcRefundNo(String wcRefundNo) {
        this.wcRefundNo = wcRefundNo;
    }

    public String getMerchantRefundNo() {
        return merchantRefundNo;
    }

    public void setMerchantRefundNo(String merchantRefundNo) {
        this.merchantRefundNo = merchantRefundNo;
    }

    public BigDecimal getRefundAmount() {
        return refundAmount;
    }

    public void setRefundAmount(BigDecimal refundAmount) {
        this.refundAmount = refundAmount;
    }

    public BigDecimal getRechargeCouponRefundAmount() {
        return rechargeCouponRefundAmount;
    }

    public void setRechargeCouponRefundAmount(BigDecimal rechargeCouponRefundAmount) {
        this.rechargeCouponRefundAmount = rechargeCouponRefundAmount;
    }

    public String getRefundType() {
        return refundType;
    }

    public void setRefundType(String refundType) {
        this.refundType = refundType;
    }

    public String getRefundStatus() {
        return refundStatus;
    }

    public void setRefundStatus(String refundStatus) {
        this.refundStatus = refundStatus;
    }

    public String getItemName() {
        return itemName;
    }

    public void setItemName(String itemName) {
        this.itemName = itemName;
    }

    public String getMerchantDataPackage() {
        return merchantDataPackage;
    }

    public void setMerchantDataPackage(String merchantDataPackage) {
        this.merchantDataPackage = merchantDataPackage;
    }

    public BigDecimal getServiceCharge() {
        return serviceCharge;
    }

    public void setServiceCharge(BigDecimal serviceCharge) {
        this.serviceCharge = serviceCharge;
    }

    public BigDecimal getTaxRate() {
        return taxRate;
    }

    public void setTaxRate(BigDecimal taxRate) {
        this.taxRate = taxRate;
    }

    public BigDecimal getOrderAmount() {
        return orderAmount;
    }

    public void setOrderAmount(BigDecimal orderAmount) {
        this.orderAmount = orderAmount;
    }

    public BigDecimal getApplyRefundAmount() {
        return applyRefundAmount;
    }

    public void setApplyRefundAmount(BigDecimal applyRefundAmount) {
        this.applyRefundAmount = applyRefundAmount;
    }

    public String getTaxRateRemark() {
        return taxRateRemark;
    }

    public void setTaxRateRemark(String taxRateRemark) {
        this.taxRateRemark = taxRateRemark;
    }

}
